package TreeSet;

import java.util.Comparator;
import java.util.TreeSet;
import java.util.function.Consumer;

public class TreesetDemo4 {
    public static void main(String[] args) {
        /* 需求：创建 5 个学生对象属性：(姓名，年龄，语文成绩，数学成绩，英语成绩),
        按照总分从高到低输出到控制台如果总分一样，
        按照语文成绩排如果语文一样，
        按照数学成绩排如果数学成绩一样，
        按照英语成绩排如果英文成绩一样，
        按照年龄排如果年龄一样，
        按照姓名的字母顺序排如果都一样，认为是同一个学生，不存。 */
         Student5 s1=new Student5("zhangshan",23,90,99,50);
         Student5 s2=new Student5("lisi",24,90,98,50);
         Student5 s3=new Student5("wangwu",25,95,100,30);
         Student5 s4=new Student5("zhaoliu",26,60,99,70);
         Student5 s5=new Student5("qianqi",26,60,99,70);
        TreeSet<Student5> ts=new TreeSet<>(new Comparator<Student5>() {
            @Override
            public int compare(Student5 o1, Student5 o2) {
                int sum1=o1.getChinese()+o1.getMath()+o1.getEnglish();
                int sum2=o2.getChinese()+o2.getMath()+o2.getEnglish();
                int i=sum1-sum2;
                i=i==0?o1.getChinese()-o2.getChinese():i;
                i=i==0?o1.getMath()-o2.getMath():i;
                i=i==0?o1.getEnglish()-o2.getEnglish():i;
                i=i==0?o1.getAge()-o2.getAge():i;
                i=i==0?o1.getName().compareTo(o2.getName()):i;
                return i;
            }
        });
        ts.add(s1);
        ts.add(s2);
        ts.add(s3);
        ts.add(s4);
        ts.add(s5);
        ts.forEach(new Consumer<Student5>() {
            @Override
            public void accept(Student5 student5) {
                System.out.println(student5);
            }
        });
    }
}
